package com.etc.service;

import com.etc.pojo.User;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @program: RookieSocialNetworking02
 *
 * @description: 用户业务层接口
 *
 * @author: 梁伟文
 *
 * @create: 2020-08-14 20:17
 **/
public interface IUserService {
    /**
     * 登录
     * @param user 用户对象
     * @return 用户对象
     */
    User login(User user);

    /**
     * 注册
     * @param user 用户对象
     * @return 成功或失败
     */
    Boolean register(User user);

    /**
     * 根据用户名查询用户
     * @param name 用户名
     * @return 用户对象
     */
    User queryUserByName(String name);

    /**
     * 根据手机号码查询用户
     * @param phone 手机号
     * @return 用户对象
     */
    User queryUserByTelephone(String phone);

    /**
     * 修改用户信息
     * @param user 用户对象
     * @return
     */
    Boolean updateUser(User user);

    PageInfo<User> queryNotAddUser(List<Integer> friendIds, Integer pageNum, Integer pageSize);

    /**
     * 模糊查询未添加的好友
     * @return
     */
    PageInfo<User> queryNotAddUserByNameOrTel(List<Integer> friendIds,User user, Integer pageNum, Integer pageSize);

    /**
     * 查询所有用户
     * @author gyx
     */
    List<User> getAllUsers();
    /**
     * 分页模糊查询
     */
    List<User> getPageUsers(String userName, int pageNum, int size);
    /**
     *增加用户
     */
    boolean add(User user);

    /**
     * 修改用户状态
     * @param userId
     */
    boolean logoutUser(int userId);
    boolean startUser(int userId);

}

